<!--

     Licensed to the Apache Software Foundation (ASF) under one
     or more contributor license agreements.  See the NOTICE file
     distributed with this work for additional information
     regarding copyright ownership.  The ASF licenses this file
     to you under the Apache License, Version 2.0 (the
     "License"); you may not use this file except in compliance
     with the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing,
     software distributed under the License is distributed on an
     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
     specific language governing permissions and limitations
     under the License.

-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- **************************************************************** -->
<!-- *  PLEASE KEEP COMPLICATED EXPRESSIONS OUT OF THESE TEMPLATES, * -->
<!-- *  i.e. only iterate & print data where possible. Thanks, Jez. * -->
<!-- **************************************************************** -->

<html>
<head>
    <!-- Generated by groovydoc (2.4.5) on Mon Sep 12 08:35:16 CEST 2016 -->
    <title>CSRFHandler (Groovy Documentation)</title>
    <meta name="date" content="2016-09-12">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../../../../../groovy.ico" type="image/x-icon" rel="shortcut icon">
    <link href="../../../../../../groovy.ico" type="image/x-icon" rel="icon">
    <link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">

<body class="center">
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
    parent.document.title="CSRFHandler (Groovy Documentation)";
}
//-->
</script>
<noscript>
    <div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
    <!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../../../index-all.html">Index</a></li>
        <li><a href="../../../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../../../index.html?io/vertx/groovy/ext/web/handler/CSRFHandler" target="_top">Frames</a></li>
            <li><a href="CSRFHandler.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <a name="skip-navbar_top">
        <!--   -->
    </a></div>
<!-- ========= END OF TOP NAVBAR ========= -->

<!-- ======== START OF CLASS DATA ======== -->
<div class="header">

    <div class="subTitle">Package: <strong>io.vertx.groovy.ext.web.handler</strong></div>

    <h2 title="[Groovy] Class CSRFHandler" class="title">[Groovy] Class CSRFHandler</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><ul class="inheritance"></ul></li><li>io.vertx.groovy.ext.web.handler.CSRFHandler
</ul>
<div class="description">
    <ul class="blockList">
        <li class="blockList">

            <dl>
                <dt>All Implemented Interfaces and Traits:</dt>
                <dd>io.vertx.core.Handler</dd>
            </dl>
            <!-- todo: direct known subclasses -->
            <hr>
            <br>
<pre>@groovy.transform.CompileStatic
class CSRFHandler
extends java.lang.Object

</pre>



    <p> This handler adds a CSRF token to requests which mutate state. In order change the state a (XSRF-TOKEN) cookie is set
 with a unique token, that is expected to be sent back in a (X-XSRF-TOKEN) header.

 The behavior is to check the request body header and cookie for validity.

 This Handler requires session support, thus should be added somewhere below Session and Body handlers.
</p>

          </li>
    </ul>
</div>

<div class="summary">
    <ul class="blockList">
        <li class="blockList">
        <!-- =========== NESTED CLASS SUMMARY =========== -->
        

        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        
        <!-- =========== FIELD SUMMARY =========== -->
        

        <!-- =========== PROPERTY SUMMARY =========== -->
        

        <!-- =========== ELEMENT SUMMARY =========== -->
        

        
        <!-- ======== CONSTRUCTOR SUMMARY ======== -->
        <ul class="blockList">
                <li class="blockList"><a name="constructor_summary"><!--   --></a>
                    <h3>Constructor Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructors Summary table">
                        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Constructor and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst">
                                <code><a href="#CSRFHandler(java.lang.Object)">CSRFHandler</a></strong>
                                (java.lang.Object delegate)</code><br></td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
        </ul>
        

        
        <!-- ========== METHOD SUMMARY =========== -->
        <ul class="blockList">
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Methods Summary table">
                        <caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Type</th>
                            <th class="colLast" scope="col">Name and description</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>static&nbsp;<a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#create(java.lang.String)">create</a></strong>(java.lang.String secret)</code><br>Instantiate a new CSRFHandlerImpl with a secret</td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code>java.lang.Object</strong></code></td>
                            <td class="colLast"><code><strong><a href="#getDelegate()">getDelegate</a></strong>()</code><br></td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>void</strong></code></td>
                            <td class="colLast"><code><strong><a href="#handle(io.vertx.groovy.ext.web.RoutingContext)">handle</a></strong>(<a href='../../../../../../io/vertx/groovy/ext/web/RoutingContext.html'>RoutingContext</a> arg0)</code><br></td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#setCookieName(java.lang.String)">setCookieName</a></strong>(java.lang.String name)</code><br>Set the cookie name. </td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#setHeaderName(java.lang.String)">setHeaderName</a></strong>(java.lang.String name)</code><br>Set the header name. </td>
                        </tr>
                        
                        <tr class="rowColor">
                            <td class="colFirst"><code><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#setNagHttps(boolean)">setNagHttps</a></strong>(boolean nag)</code><br>Should the handler give warning messages if this handler is used in other than https protocols?</td>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a></strong></code></td>
                            <td class="colLast"><code><strong><a href="#setTimeout(long)">setTimeout</a></strong>(long timeout)</code><br>Set the timeout for tokens generated by the handler, by default it uses the default from the session handler.</td>
                        </tr>
                        
                    </table>
                   </ul>
              </li>
            
            <li class="blockList"><a name="method_summary"><!--   --></a>
                    <h3>Inherited Methods Summary</h3>
                    <ul class="blockList">
                    <table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Inherited Methods Summary table">
                        <caption><span>Inherited Methods</span><span class="tabEnd">&nbsp;</span></caption>
                        <tr>
                            <th class="colFirst" scope="col">Methods inherited from class</th>
                            <th class="colLast" scope="col">Name</th>
                        </tr>
                        
                        <tr class="altColor">
                            <td class="colFirst"><code>class java.lang.Object</strong></code></td>
                            <td class="colLast"><code>java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()</code></td>
                        </tr>
                    </table>
                   </ul>
              </li>
                
        </ul>
        
    </li>
    </ul>
</div>

<div class="details">
    <ul class="blockList">
        <li class="blockList">
           

            

            

            

            
            <!-- =========== CONSTRUCTOR DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="constructor_detail">
                    <!--   -->
                </a>
                    <h3>Constructor Detail</h3>
                    
                        <a name="CSRFHandler(java.lang.Object)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><strong>CSRFHandler</strong>(java.lang.Object delegate)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            


            
            <!-- =========== METHOD DETAIL =========== -->
            <ul class="blockList">
                <li class="blockList"><a name="method_detail">
                    <!--   -->
                </a>
                    <h3>Method Detail</h3>
                    
                        <a name="create(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>static&nbsp;<a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a> <strong>create</strong>(java.lang.String secret)</h4>
                                <p> Instantiate a new CSRFHandlerImpl with a secret
 <p>
 <pre>
 CSRFHandler.create("s3cr37")
 </pre> <DL><DT><B>Returns:</B></DT><DD></DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>secret</code> -  server secret to sign the token.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="getDelegate()"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>java.lang.Object <strong>getDelegate</strong>()</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="handle(io.vertx.groovy.ext.web.RoutingContext)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4>void <strong>handle</strong>(<a href='../../../../../../io/vertx/groovy/ext/web/RoutingContext.html'>RoutingContext</a> arg0)</h4>
                                <p></p>
                            </li>
                        </ul>
                    
                        <a name="setCookieName(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a> <strong>setCookieName</strong>(java.lang.String name)</h4>
                                <p> Set the cookie name. By default XSRF-TOKEN is used as it is the expected name by AngularJS however other frameworks
 might use other names.
   <DL><DT><B>Returns:</B></DT><DD>fluent</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>name</code> -  a new name for the cookie.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="setHeaderName(java.lang.String)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a> <strong>setHeaderName</strong>(java.lang.String name)</h4>
                                <p> Set the header name. By default X-XSRF-TOKEN is used as it is the expected name by AngularJS however other
 frameworks might use other names.
   <DL><DT><B>Returns:</B></DT><DD>fluent</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>name</code> -  a new name for the header.</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="setNagHttps(boolean)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a> <strong>setNagHttps</strong>(boolean nag)</h4>
                                <p> Should the handler give warning messages if this handler is used in other than https protocols?
   <DL><DT><B>Returns:</B></DT><DD>fluent</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>nag</code> -  true to nag</DD></DL></p>
                            </li>
                        </ul>
                    
                        <a name="setTimeout(long)"><!-- --></a>
                        <ul class="blockListLast">
                            <li class="blockList">
                                <h4><a href='../../../../../../io/vertx/groovy/ext/web/handler/CSRFHandler.html'>CSRFHandler</a> <strong>setTimeout</strong>(long timeout)</h4>
                                <p> Set the timeout for tokens generated by the handler, by default it uses the default from the session handler.
   <DL><DT><B>Returns:</B></DT><DD>fluent</DD></DL><DL><DT><B>Parameters:</B></DT><DD><code>timeout</code> -  token timeout</DD></DL></p>
                            </li>
                        </ul>
                    
                </li>
            </ul>
            
        </li>
    </ul>
</div>

<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
    <!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
    <!--   -->
</a>
    <ul class="navList" title="Navigation">
        <li><a href="../../../../../../overview-summary.html">Overview</a></li>
        <li><a href="package-summary.html">Package</a></li>
        <li class="navBarCell1Rev">Class</li>
        <li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
        <li><a href="../../../../../../index-all.html">Index</a></li>
        <li><a href="../../../../../../help-doc.html">Help</a></li>
    </ul>
</div>

<div class="subNav">
    <div>
        <ul class="navList">
            <li><a href="../../../../../../index.html?io/vertx/groovy/ext/web/handler/CSRFHandler" target="_top">Frames</a></li>
            <li><a href="CSRFHandler.html" target="_top">No Frames</a></li>
        </ul>
    </div>
    <div>
        <ul class="subNavList">
            <li>Summary:&nbsp;</li>
            Nested&nbsp;&nbsp;&nbsp;Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_summary">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_summary">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
        <ul class="subNavList">
            <li>&nbsp;|&nbsp;Detail:&nbsp;</li>
            Field&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<li><a href="#constructor_detail">Constructor</a></li>&nbsp;&nbsp;&nbsp;<li><a href="#method_detail">Method</a></li>&nbsp;&nbsp;&nbsp;
        </ul>
    </div>
    <p>Groovy Documentation</p>
    <a name="skip-navbar_bottom">
        <!--   -->
    </a>
    </div>
</div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>